using ZR.Model.BaseFrame.Dto;
using ZR.Model.BaseFrame.Entity;
using ZR.Model.BaseFrame;

namespace ZR.Service.BaseFrame.IService
{
    /// <summary>
    /// 公司服务接口
    /// </summary>
    public interface ICompanyServiceBase : IBaseService<CompanyEntity>
    {

            /// <summary>
            /// 添加公司
            /// </summary>
            /// <param name="model"></param>
            /// <returns></returns>
            Task<bool> AddCompany(CompanyEntity model);

            /// <summary>
            /// 删除公司
            /// </summary>
            /// <param name="ids"></param>
            /// <param name="isRealDel"></param>
            /// <returns></returns>
            Task<bool> DeleteCompany(long[] ids, bool isRealDel = true);

            /// <summary>
            /// 修改公司
            /// </summary>
            /// <param name="model"></param>
            /// <returns></returns>
            Task<bool> ModifyCompany(CompanyEntity model);

            /// <summary>
            /// 变更公司状态
            /// </summary>
            /// <param name="req"></param>
            /// <returns></returns>
            Task<bool> ChangeCompanyState(ChangeCompanyStateReq req);


            /// <summary>
            /// 获取公司树选择列表
            /// </summary>
            /// <param name="req"></param>
            /// <returns></returns>
            Task<List<TreeNodeInfo>> GetCompanyTreeSelectList(GetCompanyTreeSelectListReq req);

            /// <summary>
            /// 获取公司分页列表
            /// </summary>
            /// <param name="req"></param>
            /// <returns></returns>
            Task<PagedInfo<CompanyListItemDto>> GetCompanyPageList(GetCompanyPageListReq req);

        

            /// <summary>
            /// 获取公司详情
            /// </summary>
            /// <param name="id"></param>
            /// <returns></returns>
            Task<CompanyDetailDto> GetCompanyDetail(long id);

    

    }
}
